#pragma once
#include "Common.hpp"

class ThreadCache
{
public:
    //申请和释放内存对象(多个定长的自由链表)
    void *Allocate(size_t size);
    void Dellocate(void *ptr, size_t size);
    // 从中心缓存获取对象
    void *FetchFromCentralCache(size_t index, size_t size);

private:
    FreeList _freeLists[NFREELIST];
};
static __thread ThreadCache *pTLSThreadCache = nullptr;
// 用于声明一个变量在每个线程中都有自己的副本。
// 这通常用于实现线程局部变量（Thread Local Storage, TLS）
// 其中每个线程都可以独立地访问和修改其自己的变量副本，而不会影响到其他线程中的同名变量。